import Vue from 'vue'
import App from './App'
// 导入 vuex 的 store 对象
import store from './store'

// 将 store 挂载到 vue 的原型对象 prototype 上
Vue.prototype.$store = store

// main.js
// 全局引入 uView 组件
import uView from "uview-ui";
Vue.use(uView);

Vue.config.productionTip = false

// 配置请求基地址
uni.$u.http.setConfig((config) => {
  /* config 为默认全局配置*/
  config.baseURL = `https://api-hmugo-web.itheima.net/api/public/v1`; /* 根域名 */
  return config
})

// 设置请求拦截器
uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
	// 获取 token
	const token = store.state.user.token || uni.getStorageSync('token')
	// 在请求头中 携带 token
	// config.headers.Authorization = token
	// 为 /my/ 开头的请求加上 token
	// 如果路径以 '/my/' 开头, 并且有 token, 就在请求头中加上 token
	if (config.url.startsWith('/my/') && token) config.headers.Authorization = token
	// 可以使用 async await 做异步操作
  uni.showLoading()
	return config
}, config => { // 可使用async await 做异步操作
	return Promise.reject(config)
})

// 设置响应拦截器
uni.$u.http.interceptors.response.use((response) => {
	uni.hideLoading()
	return response
}, (response) => {
	/*  对响应错误做点什么 （statusCode !== 200）*/
	console.log(response)
	return Promise.reject(response)
})

App.mpType = 'app'

const app = new Vue({
  ...App,
	// 在 vue 实例中注册 store 对象
	store
})
app.$mount()
